package com.wl.dzt.sys.util;

/**
 * @author wl_code@163.com
 * @version 1.0
 * @date 2018/7/5/005
 * @description 逻辑工具
 */
public class LogicUtil {

    /**
     * 如果为空,不为空则为当前值，为空则是备选值
     *
     * @param src
     * @param thenNull
     * @return
     */
    public static <T> T thenNull(Object src, Object thenNull) {
        Object result = src == null ? thenNull : src;
        return (T) result;
    }

    /**
     * 是否存在空
     * 支持多个
     * 其中一个存在空则返回true
     *
     * @param args
     * @return
     */
    public static boolean exitNull(Object... args) {
        for (Object object : args) {
            if (isNull(object)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 判断某个对象是否为空
     *
     * @param src
     * @return
     */
    public static boolean isNull(Object src) {
        return src == null || (src != null && "".equals(src.toString())) || "null".equals(src);
    }

    /**
     * 某个值满足一个条件则反回true
     *
     * @param val
     * @param stres
     * @return boolean
     */
    public static boolean orEq(String val, String... stres) {
        for (String str : stres) {
            if (str.equals(val)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 是否为空
     *
     * @param obj
     * @return boolean
     */
    public static boolean empty(Object obj) {
        if (obj != null && !obj.toString().trim().equals("") && !obj.toString().equals("null")) {
            return false;
        }
        return true;
    }

}
